package com.ruoyi.report.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;

/**
 * Delivery Defect Report
 * @TableName walmart_delivery_defect_report
 */
@TableName(value ="walmart_delivery_defect_report")
@Data
public class WalmartDeliveryDefectReport implements Serializable {

    @TableId(value = "id", type = IdType.AUTO)  // 设置主键和主键策略
    private Long id;
    /**
     * 订单下单日期
     */
    @TableField(value = "order_placed_dt")
    private String orderPlacedDt;

    /**
     * 实际交货日期
     */
    @TableField(value = "actual_delivery_date")
    private String actualDeliveryDate;

    /**
     * 取消日期
     */
    @TableField(value = "cancel_date")
    private String cancelDate;

    /**
     * 目的地州
     */
    @TableField(value = "destination_state")
    private String destinationState;

    /**
     * 预计交货日期
     */
    @TableField(value = "estimated_delivery_date")
    private String estimatedDeliveryDate;

    /**
     * 销售订单号
     */
    @TableField(value = "sales_order")
    private String salesOrder;

    /**
     * 退货日期
     */
    @TableField(value = "return_date")
    private String returnDate;

    /**
     * 追踪号
     */
    @TableField(value = "tracking_num")
    private String trackingNum;

    /**
     * 承运人
     */
    @TableField(value = "carrier")
    private String carrier;

    /**
     * 商品目录ID
     */
    @TableField(value = "catlg_item_id")
    private String catlgItemId;

    /**
     * 退货原因
     */
    @TableField(value = "return_reason")
    private String returnReason;

    /**
     * 促销ID
     */
    @TableField(value = "offer_id")
    private String offerId;

    /**
     * 采购订单号
     */
    @TableField(value = "po_num")
    private String poNum;

    /**
     * 旧卖家ID
     */
    @TableField(value = "legacy_slr_id")
    private String legacySlrId;

    /**
     * 缺陷类型
     */
    @TableField(value = "defect_type")
    private String defectType;

    /**
     * 取消原因
     */
    @TableField(value = "cancel_reason")
    private String cancelReason;

    /**
     * 唯一请求id
     */
    @TableField(value = "request_id")
    private String requestId;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        WalmartDeliveryDefectReport other = (WalmartDeliveryDefectReport) that;
        return (this.getOrderPlacedDt() == null ? other.getOrderPlacedDt() == null : this.getOrderPlacedDt().equals(other.getOrderPlacedDt()))
            && (this.getActualDeliveryDate() == null ? other.getActualDeliveryDate() == null : this.getActualDeliveryDate().equals(other.getActualDeliveryDate()))
            && (this.getCancelDate() == null ? other.getCancelDate() == null : this.getCancelDate().equals(other.getCancelDate()))
            && (this.getDestinationState() == null ? other.getDestinationState() == null : this.getDestinationState().equals(other.getDestinationState()))
            && (this.getEstimatedDeliveryDate() == null ? other.getEstimatedDeliveryDate() == null : this.getEstimatedDeliveryDate().equals(other.getEstimatedDeliveryDate()))
            && (this.getSalesOrder() == null ? other.getSalesOrder() == null : this.getSalesOrder().equals(other.getSalesOrder()))
            && (this.getReturnDate() == null ? other.getReturnDate() == null : this.getReturnDate().equals(other.getReturnDate()))
            && (this.getTrackingNum() == null ? other.getTrackingNum() == null : this.getTrackingNum().equals(other.getTrackingNum()))
            && (this.getCarrier() == null ? other.getCarrier() == null : this.getCarrier().equals(other.getCarrier()))
            && (this.getCatlgItemId() == null ? other.getCatlgItemId() == null : this.getCatlgItemId().equals(other.getCatlgItemId()))
            && (this.getReturnReason() == null ? other.getReturnReason() == null : this.getReturnReason().equals(other.getReturnReason()))
            && (this.getOfferId() == null ? other.getOfferId() == null : this.getOfferId().equals(other.getOfferId()))
            && (this.getPoNum() == null ? other.getPoNum() == null : this.getPoNum().equals(other.getPoNum()))
            && (this.getLegacySlrId() == null ? other.getLegacySlrId() == null : this.getLegacySlrId().equals(other.getLegacySlrId()))
            && (this.getDefectType() == null ? other.getDefectType() == null : this.getDefectType().equals(other.getDefectType()))
            && (this.getCancelReason() == null ? other.getCancelReason() == null : this.getCancelReason().equals(other.getCancelReason()))
            && (this.getRequestId() == null ? other.getRequestId() == null : this.getRequestId().equals(other.getRequestId()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getOrderPlacedDt() == null) ? 0 : getOrderPlacedDt().hashCode());
        result = prime * result + ((getActualDeliveryDate() == null) ? 0 : getActualDeliveryDate().hashCode());
        result = prime * result + ((getCancelDate() == null) ? 0 : getCancelDate().hashCode());
        result = prime * result + ((getDestinationState() == null) ? 0 : getDestinationState().hashCode());
        result = prime * result + ((getEstimatedDeliveryDate() == null) ? 0 : getEstimatedDeliveryDate().hashCode());
        result = prime * result + ((getSalesOrder() == null) ? 0 : getSalesOrder().hashCode());
        result = prime * result + ((getReturnDate() == null) ? 0 : getReturnDate().hashCode());
        result = prime * result + ((getTrackingNum() == null) ? 0 : getTrackingNum().hashCode());
        result = prime * result + ((getCarrier() == null) ? 0 : getCarrier().hashCode());
        result = prime * result + ((getCatlgItemId() == null) ? 0 : getCatlgItemId().hashCode());
        result = prime * result + ((getReturnReason() == null) ? 0 : getReturnReason().hashCode());
        result = prime * result + ((getOfferId() == null) ? 0 : getOfferId().hashCode());
        result = prime * result + ((getPoNum() == null) ? 0 : getPoNum().hashCode());
        result = prime * result + ((getLegacySlrId() == null) ? 0 : getLegacySlrId().hashCode());
        result = prime * result + ((getDefectType() == null) ? 0 : getDefectType().hashCode());
        result = prime * result + ((getCancelReason() == null) ? 0 : getCancelReason().hashCode());
        result = prime * result + ((getRequestId() == null) ? 0 : getRequestId().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", orderPlacedDt=").append(orderPlacedDt);
        sb.append(", actualDeliveryDate=").append(actualDeliveryDate);
        sb.append(", cancelDate=").append(cancelDate);
        sb.append(", destinationState=").append(destinationState);
        sb.append(", estimatedDeliveryDate=").append(estimatedDeliveryDate);
        sb.append(", salesOrder=").append(salesOrder);
        sb.append(", returnDate=").append(returnDate);
        sb.append(", trackingNum=").append(trackingNum);
        sb.append(", carrier=").append(carrier);
        sb.append(", catlgItemId=").append(catlgItemId);
        sb.append(", returnReason=").append(returnReason);
        sb.append(", offerId=").append(offerId);
        sb.append(", poNum=").append(poNum);
        sb.append(", legacySlrId=").append(legacySlrId);
        sb.append(", defectType=").append(defectType);
        sb.append(", cancelReason=").append(cancelReason);
        sb.append(", requestId=").append(requestId);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}